Expo Notifications API একটি শক্তিশালী টুল যা React Native অ্যাপ্লিকেশনে নোটিফিকেশন সিস্টেম ইন্টিগ্রেট করতে সহায়ক। এটি দিয়ে আপনি local এবং push notifications পাঠাতে পারেন। Expo একটি ফ্রেমওয়ার্ক এবং প্ল্যাটফর্ম যা React Native অ্যাপ্লিকেশন তৈরি করা সহজ করে তোলে এবং এর মাধ্যমে আপনি একাধিক নেটিভ ফিচার যেমন ক্যামেরা, জিপিএস, নোটিফিকেশন ইত্যাদি সহজেই ব্যবহার করতে পারেন।
Expo Notifications API ব্যবহার করে আপনি খুব সহজেই local notifications পাঠাতে পারবেন এবং push notifications পাঠানোর জন্য একটি সার্ভার বা Expo Push Notification Service ব্যবহার করতে পারবেন।
1. Installing and Setting Up Expo Notifications
প্রথমে আপনাকে Expo Notifications API ইন্টিগ্রেট করার জন্য Expo প্যাকেজ ইনস্টল করতে হবে।
expo install expo-notifications
এছাড়া, আপনি expo-permissions ইনস্টল করার জন্য ব্যবহার করতে পারেন, যেটি প্রয়োজনীয় পারমিশন রিকোয়েস্ট করতে সহায়তা করে।
expo install expo-permissions
2. Requesting Permissions
নোটিফিকেশন পাঠানোর আগে, আপনাকে ব্যবহারকারীর কাছ থেকে পারমিশন নিতে হবে। Expo Notifications API তে পারমিশন রিকোয়েস্ট করার জন্য requestPermissionsAsync() মেথড ব্যবহার করা হয়।
import * as Notifications from 'expo-notifications';
import * as Permissions from 'expo-permissions';
async function requestNotificationPermission() {
const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
if (status === 'granted') {
console.log('Notification permissions granted');
} else {
console.log('Notification permissions denied');
}
}
- Permissions.askAsync(): এটি পারমিশন রিকোয়েস্ট করে এবং status রিটার্ন করে, যা
grantedবাdeniedহতে পারে।
3. Receiving Notifications
আপনি যখন নোটিফিকেশন পাবেন, তখন Expo Notifications API-এর মাধ্যমে সেটি হ্যান্ডল করতে পারেন। আপনি notification response handler ব্যবহার করে নোটিফিকেশন রিসিভ করতে পারেন।
Handling Notifications
import * as Notifications from 'expo-notifications';
Notifications.addNotificationReceivedListener(notification => {
console.log('Notification received:', notification);
});
Notifications.addNotificationResponseReceivedListener(response => {
console.log('Notification response received:', response);
});
এখানে:
- addNotificationReceivedListener: এটি ব্যবহৃত হয় যখন একটি নোটিফিকেশন অ্যাপের ভিতরে এসে পৌঁছায়।
- addNotificationResponseReceivedListener: এটি ব্যবহৃত হয় যখন ব্যবহারকারী নোটিফিকেশনটি ক্লিক বা ইন্টারঅ্যাক্ট করেন।
4. Sending Local Notifications
Local Notifications হল নোটিফিকেশন যা ব্যবহারকারীর ডিভাইসে locally ট্রিগার করা হয়। আপনি সময় নির্ধারণ করে একটি স্থানীয় নোটিফিকেশন পাঠাতে পারেন।
Sending Local Notifications
import * as Notifications from 'expo-notifications';
async function scheduleNotification() {
await Notifications.scheduleNotificationAsync({
content: {
title: "Hello!",
body: 'This is a local notification',
},
trigger: {
seconds: 5, // Sends the notification 5 seconds later
},
});
}
এখানে:
- Notifications.scheduleNotificationAsync(): এটি একটি নোটিফিকেশন নির্দিষ্ট সময় পর পাঠাতে ব্যবহৃত হয়।
- trigger: এটি কিভাবে নোটিফিকেশনটি ট্রিগার হবে তা নির্ধারণ করে। যেমন,
seconds,minute, বা নির্দিষ্টdateদিয়ে ট্রিগার করা যেতে পারে।
5. Sending Push Notifications
Push Notifications হল সেন্ট্রাল সার্ভার থেকে পাঠানো নোটিফিকেশন যা সাধারণত ব্যবহারকারীর ডিভাইসে দূর থেকে পাঠানো হয়। Push Notifications পাঠাতে হলে আপনাকে Expo Push Notification Service ব্যবহার করতে হবে।
Setting up Push Notifications
Expo Push Notifications ব্যবহারের জন্য আপনাকে একটি Expo Push Token সংগ্রহ করতে হবে। এই token ব্যবহার করে আপনি push notifications পাঠাতে পারবেন।
import * as Notifications from 'expo-notifications';
async function getPushToken() {
const { data: token } = await Notifications.getExpoPushTokenAsync();
console.log('Expo Push Token:', token);
}
এটি আপনাকে একটি Push Token প্রদান করবে, যা আপনি এক্সপো সার্ভারে বা আপনার নিজস্ব সার্ভারে ব্যবহার করে push notifications পাঠাতে পারবেন।
Sending Push Notifications from the Server
Push notifications পাঠাতে আপনাকে সার্ভারে Expo Push Notification Service API ব্যবহার করতে হবে। এটি একটি HTTP POST রিকোয়েস্ট যা push token এবং অন্যান্য তথ্য পাঠায়।
POST Request Example:
const fetch = require('node-fetch');
async function sendPushNotification(token, message) {
const response = await fetch('https://exp.host/--/api/v2/push/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: token,
title: 'New Notification',
body: message,
}),
});
const responseJson = await response.json();
console.log(responseJson);
}
এখানে:
- https://exp.host/--/api/v2/push/send: এটি Expo Push Notification Service এর API রুট।
- to: এটি সেই
pushTokenযেটিতে নোটিফিকেশন পাঠানো হবে।
6. Handling Notifications in Background
এছাড়াও, আপনি background notifications বা foreground notifications হ্যান্ডেল করতে পারেন। সাধারণত, অ্যাপের ব্যাকগ্রাউন্ডে থাকা অবস্থায় একটি নোটিফিকেশন আসে এবং তা অ্যাপের আউটপুট হিসেবে প্রদর্শিত হয়।
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true, // Show the notification alert
shouldPlaySound: false, // Disable sound for this notification
shouldSetBadge: false, // Disable badge count
}),
});
এটি ব্যবহারকারীর ডিভাইসে নোটিফিকেশন হ্যান্ডলিং কাস্টমাইজ করার জন্য ব্যবহৃত হয়।
Summary
Expo Notifications API একটি শক্তিশালী টুল যা React Native অ্যাপ্লিকেশনে নোটিফিকেশন সিস্টেম ইন্টিগ্রেট করতে সাহায্য করে। এটি আপনাকে local notifications এবং push notifications পাঠাতে এবং গ্রহণ করতে সহায়তা করে।
- Local notifications ব্যবহারকারীকে অ্যাপের ভিতরে স্থানীয়ভাবে নোটিফিকেশন পাঠাতে ব্যবহৃত হয়।
- Push notifications ব্যবহারকারীর ডিভাইসে রিমোট সার্ভার থেকে নোটিফিকেশন পাঠানোর জন্য ব্যবহৃত হয়।
- Expo Push Token এর মাধ্যমে আপনি push notifications পাঠানোর জন্য Expo Push Notification Service ব্যবহার করতে পারেন।
Expo Notifications API দিয়ে আপনি একটি খুব কার্যকরী এবং রেসপন্সিভ নোটিফিকেশন সিস্টেম তৈরি করতে পারেন।
Read more